* Moodle 1.9 [#m55ef079] Moodle 1.5 については [[Moodle]] 参照。 Moodle 1.6 については [[Moodle 1.6]] 参照。 Moodle 1.7 については [[Moodle 1.7]] 参照。 Moodle 1.8 については [[Moodle 1.8]] 参照。 三重大学版が http://portal.mie-u.ac.jp/src/ あるいはその中に書いてあるSubversionレポジトリからダウンロードできる。Subversionのほうが常に新しい。 [[PHP]] と,[[MySQL]] または [[PostgreSQL]] が必要。 以下では Linux + Apache + MySQL + PHP の環境でインストール。 CentOS 4.xやVine Linux 4.xで利用実績あり。 CentOS 4.xについては,httpd,php,mysql,php-mysql,gd,php-gd,php-mbstring がなければ yum install で入れておく。 OSのインストールの際にファイアウォールとSELinuxがデフォルトでオンになっていることがあるが,これはオフにしておかないと後で面倒なことになる。ファイアウォールは iptables デーモンを切ればよい。SELinux は setenforce 0 でとりあえず切れる。ずっと切るには /etc/selinux/config に SELINUX=disabled と書き込む。 ** Apache [#zebfe6fb] DirectoryIndex に index.php が含まれることを確認。 Apache 2.x の場合,httpd.conf に必ず AcceptPathInfo on を入れる。 ** MySQL [#iaec6900] MySQL 4.1.16以上が必要。 次のようにしてデータベースを作っておく(データベース名 moodle,ユーザ名 moodleuser,Webサーバのホスト名 hostname,パスワード himitsu の場合)。 mysql --default-character-set=utf8 -u root -p create database moodle default character set utf8 collate utf8_unicode_ci; grant select,insert,update,delete,create,create temporary tables,drop,index,alter on moodle.* to moodleuser@'hostname' identified by 'himitsu'; quit Apache と MySQL が同居する場合は 'hostname' は localhost でよい。 そうでない場合は 'oku' あるいは 'oku.edu.mie-u.ac.jp' のようにする(単に 'oku' とするのは /etc/hosts に oku が oku.edu.mie-u.ac.jp より先に書いてある場合)。 ** PHP [#h73539e5] php.ini は基本的にデフォルトのままでいい。日本語関係の設定をするなら次のようにする: default_charset = UTF-8 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass Moodle.org のサイトには次のようにすると書かれている: magic_quotes_gpc = 1 (推奨) magic_quotes_runtime = 0 (必ず) file_uploads = 1 session.auto_start = 0 session.bug_compat_warn = 0 しかしうちはデフォルトのまま magic_quotes_gpc = off で使っている。 このほうが安全。 ファイルのアップロードの最大サイズを php.ini で指定する: upload_max_filesize = 100M post_max_size = 100M メモリ制限は多めに設定(少なくとも40M): memory_limit = 128M ** Moodle [#vc6bf848] Moodle をダウンロードして /var/www/html 以下に展開(以下では /var/www/html/moodle)。 これは当然ながら所有者は apache 以外にして,管理人以外には書き込み権限を与えない。 データ用ディレクトリを /var/www/html の外に設定。 以下では /var/www/moodledata とする。 ここは apache が読み書きできるようにする。 アップロードされたファイルはここに入る。 http://サーバ名/moodle/ をアクセスする(http://サーバ名/moodle/install.php にリダイレクトされる)。 質問に答えていけば設定ファイル config.php が作られるが,moodle ディレクトリに apache が書き込めないので,表示された config.php をコピーしてエディタにペーストし,moodle ディレクトリに保存する。 その際, $CFG->unicodedb = true; $CFG->unicodecleanfilename = true; を追加する。 を追加する。なお,パスワードポリシーが1.9.7あたりから急に厳しくなったので,それがうざい場合は $CFG->passwordpolicy = false; と書いておく(このあたりのことは http://moodle.org/mod/forum/discuss.php?d=144857 参照)。 さらに,パスワードの保存方式が従来の単純なMD5からsaltを使う方式に変わったが,それに対応したくない場合 $CFG->passwordsaltmain = '...'; の行をコメントアウトする。 質問は「続く」でたくさんのページがあるが必ず最後まで答える(自動運転も可能)。 質問中でURLが http://.../moodle のようになるが最後に / を補わないこと。 途中で「「日本語(ja)」言語パックをダウンロードする」ボタンが現れるが,三重大学版はここは何もしない。 詳細設定の画面は例えば次のようにする: lang: 日本語(ja) country: 日本 allowcoursethemes: Yes sessioncookiepath: /moodle/ ←Moodleをインストールしたパス sitemailcharset: ISO-2022-JP あとは http://サーバ名/moodle/ をアクセスするだけ。 動作確認したら cron を設定する。 まず http://サーバ名/moodle/admin/cron.php をブラウザで見てうまく働くことを確認。 よければ一般ユーザでいいから crontab -e で次のように設定。 */5 * * * * wget -q -O /dev/null http://サーバ名/moodle/admin/cron.php ** 既存Moodleからの移行 [#e766efb2] 念のためバックアップ: mysqldump -u root -p moodle >moodle.sql ソースを上書きし,管理者でMoodleにログインするとデータベースの更新が始まる。php.ini の max_execution_time に十分大きな値をセットしておかないと途中でタイムアウトする。 既存Moodleを残して別のMoodleに全データをインポートするには,上のようにして作ったバックアップを mysql --default-character-set=utf8 -u root -p # データベース newmoodle を作成 use newmoodle; show tables; # データベースが空であることを確認 source moodle.sql # これでデータがコピーされる 元のMoodleで設定していた sessioncookie と sessioncookiepath を変更する必要がある場合は, 次のようにすれば強制的に変えられる: update mdl_config set value='新しいクッキー名' where name='sessioncookie'; update mdl_config set value='/新しいパス/' where name='sessioncookiepath';